using System.Collections.Generic;
using System.Windows.Forms;
using Infragistics.Win.UltraWinChart;

namespace PluginFrame
{
	public interface IPcrOptionService
	{
		bool IsRefreshExperimentStatusForm { get; set; }

		string ShowExperimentEncryptionOption(string password);

		bool ShowExperimentEncryptionCheck(string password, string titleString);

		string SetAlleleType(string[] alleleTypes, string currentAlleleType, ref AlleleCallResult newAlleleCellResult);

		string SetHRMType(IHRMExperiment hrmExperiment, string currentAlleleType, ref int resultIndex);

		void ShowExperimentHotLidOption(IPcrExperiment pcrExperiment);

		void ShowChartAxisZoomOptionForm(UltraChart chart, bool isShowLogAxis);

		void ShowHRMChartAxisZoomOptionForm(UltraChart chart);

		IPcrDataFile ShowExperimentOptionForm(IPcrDataFile pcrDataFile, ExperimentOptionType optionType, PcrSystemType pcrSystemType);

		void ShowExperimentStatus(IPcrDataFile pcrDataFile, PcrExperimentStatus[] statusTypes, bool isProcessExperimentFinished, bool allStatus);

		void SetRefreshExperimentStatus(IPcrDataFile pcrDataFile, PcrExperimentStatus[] statusTypes, bool isProcessExperimentFinished, bool allStatus);

		void PreLoadExperimentOptionForm(IPcrDataFile pcrDataFile, ExperimentOptionType optionType, PcrSystemType pcrSystemType);

		void LoadNewExperimentOptionForm(IPcrDataFile pcrDataFile);

		void LoadChannelOptionForm(List<bool> isChannelSelected, IChannelConfiguration[] channelConfigurations);

		void LoadChannelInformationForm(List<bool> isChannelSelected, IChannelConfiguration[] channelConfigurations);

		void LoadInformationItemOptionForm();

		void SaveInformationOptionsAsDefault(List<string> newOptionStrings, string columnKey);

		Control CreateChannelGridOptionControl(IApplication app, List<bool> isChannelSelected, IChannelConfiguration[] channelConfigurations);

		Control CreateChannelGridViewControl(IApplication app, List<bool> isChannelSelected, IChannelConfiguration[] channelConfigurations);

		List<bool> GetChannelGridOption(Control channelGrid);

		bool GetChannelGridChanged(Control channelGrid);

		void RefreshChanngelGridOptionDisplay(Control channelGrid, List<bool> isChannelSelected);

		void ShowSetValueForm(string title, string formTitle, string originalValue, IRequireValueFromForm requireValueFromFom);

		DialogResult ShowOfflineInstrumentOption();

		bool LoadAdvancedOptionForm();
	}
}
